L'alpha blending est une technique qui consiste à rendre invisible une couleur, et appliquer le coefficient d'invisibilité à chaque objet.
IL faut commencer par activer le mode blending dans opengl. Comme d'habitude, glEnable(GL_BLEND);, et glBlendFunc(GL_SRC_ALPHA, GL_ONE); qui defini son fonctionnement.
Maintenant revenons sur glColor();. Une de ses variantes est glColor4f(1,1,1,.5f);. Le quatrième parametre à un rapport direct avec le blending, il s'agit du coefficient de transparence.
Enfin, lorsque le blending est activé, et que le test de pronfondeur est desactivé(glDisable(GL_DEPTH_TEST);), tous les objets noirs sont invisibles. On peut aller plus loin en sachant que lorsque un objet à plusieurs couleurs dont le noir ils peuvent être completement opaque en appliquant un coefficient de transparence de 1 et avoir une forme compliquée grace au noir qui serait invisible.
Au lieu de desactiver le test de profondeur, on peut à la place activer le masque de profondeur: glDepthMask(false); sans oublier de le remettre à true après avoir dessiné les objets transparents. On utilise cette technique pour les particules par exemple. Cela évite de voir les particules a travèrs les murs.
C'est un exemple simple, deux carrés identiques transparents l'un derriere l'autre.
Vous pouvez aller dans la section projet regardez les screenshots, il y a du blending dans chacun d'entre eux (les fonctions d'ecriture à l'ecran, les mur lumineux et les boss suivent cette technique).
Les objets peuvent devenir transparents suivant un coefficient, une couleur peu devenir complètement invisible et cette technique s'applique aussi bien aux couleurs, qu'aux textures.
Retour |
contact: ultrafil [AT] fr.st |